package com.alatus.djl;

import ai.djl.Model;
import ai.djl.basicmodelzoo.cv.classification.ResNetV1;
import ai.djl.ndarray.types.Shape;
import ai.djl.nn.SequentialBlock;

public class Models {
    private static final String modelName = "footWeaver";
    public static Model getModel() {
//        创建模型
        Model model = Model.newInstance(modelName);
//        设置神经网络,定义神经网络
//        残差网络,是一种CNN模型,专门用来解决图像识别问题
//        RGB有三种值,然后100和100是图像尺寸
//        这里表示的就是100*100的像素,每个像素都由RBG三种值构成
//        万物的世界,就是各种神经网络,因此我们需要把所有的内容都表示为某种章量向量

//        当我们知道每一个网络都是起到什么作用的时候,剩下就是我们的参数调整或者说调优即可
//        应用层只是套用算法,开发算法不在这里
//        机器学习应用层就是套现成的模型,然后调参,底层才需要开发算法
        SequentialBlock sequentialBlock = ResNetV1.builder()
                .setImageShape(new Shape(1, 3, 100, 100))
                .setNumLayers(50)
                .setOutSize(4)//分类数量
                .build();
//        以后训练就是这个模型,模型里面用的就是咱们这个神经网络(残差网络)
        model.setBlock(sequentialBlock);
        return model;
    }
}
